﻿using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Linq.Expressions;
using DDD.Infrastructure.Extend;
using DDD.Infrastructure.Helps;

namespace Ui
{
    class Program
    {
        static void Main(string[] args)
        {

            //  DataTable dataTable = new DataTable();

            //  dataTable.Columns.Add("Id");
            //  dataTable.Columns.Add("Name");
            //  for (int i = 0; i < 100; i++)
            //  {
            //      DataRow dr = dataTable.NewRow();
            //      dr["Id"] = i;
            //      dr["Name"] = $"帅东{i}";
            //      dataTable.Rows.Add(dr);
            //  }
            //var list= ExpressionDataRowMappe<User>.SqlDataRowToList(dataTable);
            //   List<UserDto> users = new List<UserDto>();
            //   for (int i = 0; i < 1000000; i++)
            //   {
            //       users.Add(new UserDto() { Id = i });
            //   }

            //   Expression<Func<User, bool>> userExp = _ => _.Id < 10000;
            //   var userDto = userExp.Cast<User, UserDto>();




            //var list= users.AsQueryable().Where(userDto).ToList();

            List<FilterInfo> filterInfos = new List<FilterInfo>();
            filterInfos.Add(new FilterInfo {
                Field="Id",
                 Value="111"
            });
          var ddd=  FilterHelp.ToFilterExpression<User>(filterInfos);

            Console.ReadKey();

        }
    }


    public class User
    {
        public int Id { get; set; }


        public string Name { get; set; }
    }

    public class UserDto
    {
        public int Id { get; set; }


        public string Name { get; set; }
    }
}
